iT邦幫忙

2022 iThome 鐵人賽

DAY 8
0
自我挑戰組

用Python學習網路爬蟲30天系列 第 8

[Day8] 擷取靜態HTML網頁資料3_正規表達式

  • 分享至 

  • xImage
  •  

正規表達式

正規表達式是一個範本字串,可以用來進行字串對比,為一種小型的字串比對語言。其範本字串是使用英文字母、數字和一些特殊字元所組成,裡面包含了以下字元,下方列出一些常見的正規表達式:

  • 字元集
表示法 意義
[abc] 包含英文字母 a、b 或 c
[a-zA-Z] 任何大小寫的英文字母
[^abc] 除了a、b和c以外的任何字母
[0-9] 數字0-9
  • 比較字元
表示法 意義
^ 第1個字元開始比對
$ 字串最後須符合範本字串
. 代表任何一個字元
{n} 出現n次
  • 特殊字元
表示法 意義
\n 換新行符號
\r 換行並移到最前端
\t Tab鍵

實作練習

使用正規表達式搜尋HTML網頁

  1. 搜尋文字內容:在FJU_p4.html中找出「醫院資訊系統」的文字段落
    https://ithelp.ithome.com.tw/upload/images/20220922/20152180KQAkphLKhp.png

    import re
    from bs4 import BeautifulSoup 
    
    with open("FJU_p4.html", "r", encoding="utf8") as fp:
    soup = BeautifulSoup(fp, "lxml")
    # 使用正規運算式搜尋文字內容
    regexp = re.compile("「醫院資訊系統」")
    tag_str = soup.find(text=regexp)
    print(tag_str)
    regexp = re.compile("\「+\w+\」")
    tag_list = soup.find_all(text=regexp)
    print(tag_list)
    

    https://ithelp.ithome.com.tw/upload/images/20220922/20152180U9l5Ss2PTt.png

  2. 搜尋URL網址:在FJU_p4.html中找出粉絲專頁的FB、IG連結
    https://ithelp.ithome.com.tw/upload/images/20220922/20152180cJi19uJAYg.png

    import re
    from bs4 import BeautifulSoup 
    
    with open("FJU_p4.html", "r", encoding="utf8") as fp:
    soup = BeautifulSoup(fp, "lxml")
    # 使用正規運算式搜尋URL網址
    url_regexp = re.compile("^https:")
    tag_href = soup.find("a", href=url_regexp)
    print(tag_href)
    print("---------------------")
    tag_list = soup.find_all("a", href=url_regexp)
    print(tag_list)
    

    https://ithelp.ithome.com.tw/upload/images/20220922/20152180bDr6Mc9Mo2.png


上一篇
[Day7] 擷取靜態HTML網頁資料2_HTML標籤定位
下一篇
[Day9] 擷取靜態HTML網頁資料4_CSS選擇器
系列文
用Python學習網路爬蟲30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言